﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using Dominio;

namespace Persistencia
{
    public class Producto_Data
    {
        SqlConnection _cn = null;
        SqlCommand _cmd = null;
        SqlDataReader _reader = null;

        public List<Producto> Data_Producto_List(int codigoSubCategoria)
        {
            using (_cn = new SqlConnection(Helpers.ConexionUtil.ObtenerCadena()))
            {
                using (_cmd = new SqlCommand("USP_PRODUCTO_LIST", _cn))
                {
                    List<Producto> _ListProducto = new List<Producto>();
                    _cn.Open();
                    _cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    _cmd.Parameters.Add("@coSubCategoria", SqlDbType.Int).Value = codigoSubCategoria;
                    _reader = _cmd.ExecuteReader();

                    while (_reader.Read())
                    {
                        Producto _produto = new Producto();

                        _produto.coProducto = Convert.ToInt32(_reader["coProducto"].ToString());
                        _produto.noProducto = _reader["noProducto"].ToString();
                        _produto.precio = Convert.ToDecimal(_reader["precio"].ToString());

                        _ListProducto.Add(_produto);
                    }
                    return _ListProducto;
                }
            }
        }

        /// <summary>
        /// Precio del producto seleccionado
        /// </summary>
        /// <param name="codigoProducto">codigo del producto seleccionado</param>
        /// <returns>Entidad Producto</returns>
        public Producto Data_Producto_Precio(int codigoProducto)
        {
            using (_cn = new SqlConnection(Helpers.ConexionUtil.ObtenerCadena()))
            {
                using (_cmd = new SqlCommand("USP_PRODUCTO_PRECIO", _cn))
                {
                    _cn.Open();
                    _cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    _cmd.Parameters.Add("@coProducto", SqlDbType.Int).Value = codigoProducto;
                    _reader = _cmd.ExecuteReader();
                    Producto _produto = new Producto();

                    while (_reader.Read())
                    {
                        _produto.coProducto = Convert.ToInt32(_reader["coProducto"].ToString());
                        _produto.noProducto = _reader["noProducto"].ToString();
                        _produto.precio = Convert.ToDecimal(_reader["precio"].ToString());
                    }
                    return _produto;
                }
            }
        }
    }
}
